home *** CD-ROM | disk | FTP | other *** search
- /*
- * prototypes for TransSkel public routines
- *
- * Written for THINK C 6.0.1.
- *
- * Assumes that compiler understands nested prototypes.
- *
- * You must have THINK C Language Extensions turned on in the
- * Edit/Options.../Language Settings dialog (so that the "pascal" keyword
- * is recognized, for one thing).
- *
- * for: TransSkel 3.11
- * last edit: 20 Feb 94
- */
-
- # ifndef __TRANSSKEL_H__
-
- # define __TRANSSKEL_H__
-
- # define skelMajorRelease 3
- # define skelMinorRelease 11
-
-
- /* window property numbers */
-
- # define skelWPropAll 0 /* pseudo-property */
- # define skelWPropModeless 1 /* modeless dialog */
- # define skelWPropModal 2 /* modal dialog */
- # define skelWPropTool 3 /* tool window */
- # define skelWPropMovableModal 4 /* movable modal dialog */
- # define skelWPropHelp 5 /* help window */
- # define skelWPropText 6 /* text window */
- # define skelWPropDisplayWind 7 /* TransDisplay window */
- # define skelWPropEditWind 8 /* TransEdit window */
- # define skelWPropApplBase 256 /* general-use prop num base */
-
-
- /* SkelQuery() query selectors */
-
- # define skelQVersion 1 /* TransSkel version */
- # define skelQSysVersion 2 /* System software version */
- # define skelQHasWNE 3 /* whether has WaitNextEvent() */
- # define skelQMBarHeight 4 /* menu bar height */
- # define skelQHas64KROM 5 /* whether has 64K ROM */
- # define skelQHasColorQD 6 /* whether has Color QuickDraw */
- # define skelQInForeground 7 /* whether in foreground */
- # define skelQHasGestalt 8 /* whether has Gestalt() */
- # define skelQHasAppleEvents 9 /* whether has Apple Events */
- # define skelQQDVersion 10 /* QuickDraw version */
- # define skelQGrayRgn 11 /* Desktop region */
-
-
- /* window property types */
-
- typedef struct SkelWindProperty SkelWindProperty, **SkelWindPropHandle;
-
- struct SkelWindProperty
- {
- short skelWPropType;
- long skelWPropData;
- SkelWindPropHandle skelWPropNext;
- };
-
-
- /* initialization parameters */
-
- typedef struct SkelInitParams SkelInitParams, *SkelInitParamsPtr;
-
- struct SkelInitParams
- {
- short skelMoreMasters;
- GrowZoneProcPtr skelGzProc;
- ResumeProcPtr skelResumeProc;
- Size skelStackAdjust;
- };
-
-
- /*
- * typedefs for pointers to various sorts of functions used by TransSkel
- * routines.
- */
-
- typedef pascal void (*SkelIdleProcPtr) (void);
- typedef pascal Boolean (*SkelEventHookProcPtr) (EventRecord *);
- typedef pascal void (*SkelSuspendResumeProcPtr) (Boolean inForeground);
- typedef pascal void (*SkelClipCvtProcPtr) (Boolean inForeground);
- typedef pascal void (*SkelAEHandlerProcPtr) (EventRecord *);
- typedef pascal void (*SkelDlogItemProcPtr) (DialogPtr d, short item);
-
-
- /* ------------- */
- /* Core routines */
- /* ------------- */
-
- /* initialization/termination routines */
-
- pascal void SkelGetInitParams (SkelInitParamsPtr initParams);
- pascal void SkelInit (SkelInitParamsPtr initParams);
- pascal void SkelCleanup (void);
-
- /* event-loop-related routines */
-
- pascal void SkelEventLoop (void);
- pascal void SkelStopEventLoop (void);
- pascal void SkelRouteEvent (EventRecord *theEvent);
- pascal void SkelActivate (WindowPtr w, Boolean active);
- pascal void SkelClose (WindowPtr w);
- pascal EventRecord *SkelGetCurrentEvent (void);
- pascal short SkelGetModifiers (void);
- pascal void SkelSetEventMask (short mask);
- pascal short SkelGetEventMask (void);
- pascal void SkelSetDlogMask (short mask);
- pascal short SkelGetDlogMask (void);
- pascal void SkelSetIdle (SkelIdleProcPtr p);
- pascal SkelIdleProcPtr SkelGetIdle (void);
- pascal void SkelSetEventHook (SkelEventHookProcPtr p);
- pascal SkelEventHookProcPtr SkelGetEventHook (void);
- pascal void SkelSetSuspendResume (SkelSuspendResumeProcPtr p);
- pascal SkelSuspendResumeProcPtr SkelGetSuspendResume (void);
- pascal void SkelSetClipCvt (SkelClipCvtProcPtr p);
- pascal SkelClipCvtProcPtr SkelGetClipCvt (void);
- pascal void SkelSetWaitTimes (long fgTime, long bgTime);
- pascal void SkelGetWaitTimes (long *pFgTime, long *pBgTime);
-
- pascal void SkelSetAEHandler (SkelAEHandlerProcPtr p);
- pascal SkelAEHandlerProcPtr SkelGetAEHandler (void);
-
-
- /* window handling routines */
-
- typedef pascal void (*SkelWindMouseProcPtr) (Point where, long when, short modifiers);
- /*
- * Key handler needs special treatment because for prototyped functions
- * (which TransSkel uses), THINK C passes character arguments in the *high*
- * byte of a two-byte stack value. To make sure the values are passed in the
- * low byte from either C or Pascal key handlers, the first two arguments are
- * passed in shorts. The Pascal key procedure should
- * look like this:
- * procedure Key (c: char; code: Integer; modifiers: Integer);
- */
- typedef pascal void (*SkelWindKeyProcPtr) (short c, short code, short modifiers);
- typedef pascal void (*SkelWindUpdateProcPtr) (Boolean resized);
- typedef pascal void (*SkelWindActivateProcPtr) (Boolean active);
- typedef pascal void (*SkelWindCloseProcPtr) (void);
- typedef pascal void (*SkelWindClobberProcPtr) (void);
- typedef pascal void (*SkelWindIdleProcPtr) (void);
-
- typedef pascal void (*SkelWindEventProcPtr) (short item, EventRecord *event);
-
- typedef pascal void (*SkelWindZoomProcPtr) (WindowPtr w, short zoomDir);
-
- pascal Boolean SkelWindow (WindowPtr w,
- SkelWindMouseProcPtr pMouse,
- SkelWindKeyProcPtr pKey,
- SkelWindUpdateProcPtr pUpdate,
- SkelWindActivateProcPtr pActivate,
- SkelWindCloseProcPtr pClose,
- SkelWindClobberProcPtr pClobber,
- SkelWindIdleProcPtr pIdle,
- Boolean idleFrontOnly);
- pascal Boolean SkelDialog (DialogPtr dlog,
- SkelWindEventProcPtr pEvent,
- SkelWindCloseProcPtr pClose,
- SkelWindClobberProcPtr pClobber);
- pascal void SkelRmveWind (WindowPtr w);
- pascal void SkelRmveDlog (DialogPtr dlog);
- pascal Boolean SkelWindowRegistered (WindowPtr w);
- pascal void SkelSetGrowBounds (WindowPtr w,
- short hLo, short vLo,
- short hHi, short vHi);
- pascal void SkelSetZoom (WindowPtr w, SkelWindZoomProcPtr pZoom);
- pascal SkelWindZoomProcPtr SkelGetZoom (WindowPtr w);
- pascal Boolean SkelGetRectDevice (Rect *rp, GDHandle *gd, Rect *devRect, Boolean *isMain);
- pascal Boolean SkelGetWindowDevice (WindowPtr w, GDHandle *gd, Rect *devRect);
- pascal void SkelGetWindContentRect (WindowPtr w, Rect *rp);
- pascal void SkelGetWindStructureRect (WindowPtr w, Rect *rp);
- pascal short SkelGetWindTitleHeight (WindowPtr w);
-
- pascal Boolean SkelAddWindProp (WindowPtr w, short propType, long propData);
- pascal void SkelRmveWindProp (WindowPtr w, short propType);
- pascal SkelWindPropHandle SkelGetWindProp (WindowPtr w, short propType);
-
-
- /* menu handling routines */
-
- typedef pascal void (*SkelMenuSelectProcPtr) (short item);
- typedef pascal void (*SkelMenuClobberProcPtr) (MenuHandle m);
- typedef pascal void (*SkelMenuHookProcPtr) (void);
-
- pascal Boolean SkelMenu (MenuHandle m,
- SkelMenuSelectProcPtr pSelect,
- SkelMenuClobberProcPtr pClobber,
- Boolean subMenu,
- Boolean drawBar);
- pascal void SkelRmveMenu (MenuHandle m);
-
- pascal void SkelSetMenuHook (SkelMenuHookProcPtr p);
- pascal SkelMenuHookProcPtr SkelGetMenuHook (void);
-
-
- /* environment information routines */
-
- pascal long SkelQuery (short selector);
- pascal Boolean SkelTrapAvailable (short theTrap);
-
-
- /* ------------------ */
- /* Auxiliary routines */
- /* ------------------ */
-
- # define skelAppleMenuID 128
-
- pascal void SkelApple (StringPtr items, SkelMenuSelectProcPtr pSelect);
-
- pascal void SkelDoEvents (short mask);
- pascal void SkelDoUpdates (void);
-
- pascal ModalFilterProcPtr SkelDlogFilter (ModalFilterProcPtr filter, Boolean doReturn);
- pascal ModalFilterYDProcPtr SkelDlogFilterYD (ModalFilterYDProcPtr filter, Boolean doReturn);
- pascal void SkelRmveDlogFilter (void);
- pascal void SkelDlogDefaultItem (short item);
- pascal void SkelDlogCancelItem (short item);
-
- pascal Boolean SkelCmdPeriod (EventRecord *evt);
-
-
- /* -------------------- */
- /* Convenience routines */
- /* -------------------- */
-
- /* positioning types for SkelGetReferenceRect()/SkelPositionWindow() */
-
- # define skelPositionNone 0 /* leave as is */
- # define skelPositionOnMainDevice 1 /* position on main device */
- # define skelPositionOnParentWindow 2 /* position on FrontWindow() */
- # define skelPositionOnParentDevice 3 /* position on FrontWindow()'s device */
-
- pascal void SkelGetMainDeviceRect (Rect *r);
- pascal void SkelPositionRect (Rect *refRect, Rect *r, Fixed hRatio, Fixed vRatio);
- pascal void SkelGetReferenceRect (Rect *r, short positionType);
- pascal void SkelPositionWindow (WindowPtr w, short positionType, Fixed hRatio, Fixed vRatio);
- pascal Boolean SkelTestRectVisible (Rect *r);
-
- /* alert presentation routines */
-
- pascal short SkelAlert (short alrtResNum, ModalFilterProcPtr filter, short positionType);
- pascal void SkelSetAlertPosRatios (Fixed hRatio, Fixed vRatio);
- pascal void SkelGetAlertPosRatios (Fixed *hRatio, Fixed *vRatio);
-
- /* control manipulation routines */
-
- pascal Boolean SkelHiliteControl (ControlHandle ctrl, short hilite);
- pascal void SkelDrawButtonOutline (ControlHandle ctrl);
- pascal void SkelEraseButtonOutline (ControlHandle ctrl);
- pascal void SkelFlashButton (ControlHandle ctrl);
- pascal short SkelToggleCtlValue (ControlHandle ctrl);
-
- /* dialog item manipulation routines */
-
- pascal ControlHandle SkelGetDlogCtl (DialogPtr d, short item);
- pascal Boolean SkelSetDlogCtlHilite (DialogPtr d, short item, short hilite);
- pascal short SkelGetDlogCtlHilite (DialogPtr d, short item);
- pascal void SkelSetDlogCtlValue (DialogPtr d, short item, short value);
- pascal short SkelGetDlogCtlValue (DialogPtr d, short item);
- pascal short SkelToggleDlogCtlValue (DialogPtr d, short item);
- pascal void SkelSetDlogCtlRefCon (DialogPtr d, short item, long value);
- pascal long SkelGetDlogCtlRefCon (DialogPtr d, short item);
- pascal void SkelSetDlogStr (DialogPtr d, short item, StringPtr str);
- pascal void SkelGetDlogStr (DialogPtr d, short item, StringPtr str);
- pascal void SkelSetDlogRect (DialogPtr d, short item, Rect *r);
- pascal void SkelGetDlogRect (DialogPtr d, short item, Rect *r);
- pascal void SkelSetDlogProc (DialogPtr d, short item, SkelDlogItemProcPtr p);
- pascal SkelDlogItemProcPtr SkelGetDlogProc (DialogPtr d, short item);
- pascal void SkelSetDlogType (DialogPtr d, short item, short type);
- pascal short SkelGetDlogType (DialogPtr d, short item);
- pascal void SkelSetDlogRadioButtonSet (DialogPtr dlog, short first, short last, short choice);
- pascal void SkelSetDlogButtonOutliner (DialogPtr d, short item);
-
- pascal void SkelPause (long ticks);
-
- # endif /* __TRANSSKEL_H__ */